package com.studyweb.utils;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Primary;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Component;

/**
 * 阿里云OSS配置属性类
 * 
 * @author StudyWeb Team
 * @since 1.0.0
 */
@Data
@Component
@Primary
@ConfigurationProperties(prefix = "aliyun.oss")
public class AliyunOssProperties {
    
    /**
     * OSS访问密钥ID
     */
    private String accessKeyId;
    
    /**
     * OSS访问密钥Secret
     */
    private String accessKeySecret;
    
    /**
     * OSS Bucket名称
     */
    private String bucketName;
    
    /**
     * OSS服务端点
     */
    private String endpoint;
    
    /**
     * 文件存储目录前缀
     */
    private String dirPrefix = "studyweb/uploads/";
    
    /**
     * 自定义域名（可选，如果配置了CDN加速域名）
     */
    private String customDomain;
    
    /**
     * 是否启用OSS上传（true: OSS上传, false: 本地上传）
     */
    private boolean enabled = true;
    
    /**
     * 获取文件访问URL的域名
     * 如果配置了自定义域名，则使用自定义域名，否则使用默认的OSS域名
     * 
     * @return 访问域名
     */
    public String getAccessDomain() {
        if (customDomain != null && !customDomain.trim().isEmpty()) {
            return customDomain.trim();
        }
        
        // 从endpoint提取域名
        if (endpoint != null) {
            String domain = endpoint.replace("https://", "").replace("http://", "");
            return "https://" + bucketName + "." + domain;
        }
        
        return "";
    }
}